package grafica;

import javax.swing.*;

/**
 * El manejador del background genera la ilusion de que Mario se desplaza por el
 * nivel. Se conforma de un JLabel que representa el fondo del nivel actual y un
 * JPanel que modela los componentes que forman parte de ese nivel.
 * 
 * @author Agustin Orge (LU.85538)
 * @author Victoria Martinez de la Cruz (LU.87620)
 */

public class ManejadorBackground {

	/** Atributos de instancia */
	private JLabel labelFondo;
	private JPanel panelComponentes, panelPowerUps;

	/**
	 * Constructor de manejadorBackground
	 * 
	 * @param f
	 *            imagen del fondo
	 * @param p
	 *            panel de componentes
	 */
	public ManejadorBackground(JLabel f, JPanel pc, JPanel pp) {
		labelFondo = f;
		labelFondo.setDoubleBuffered(true);
		panelComponentes = pc;
		panelComponentes.setDoubleBuffered(true);
		panelPowerUps = pp;
		panelPowerUps.setDoubleBuffered(true);
	}

	/**
	 * Los movimientos estan determinados por la posicion actual del
	 * JPanel/JLabel. El (0,0) se encuentra en la esquina superior izquierda del
	 * frame.
	 */

	/**
	 * Mueve la grafica hacia la derecha. Mario retrocede.
	 */
	public void moverDerecha() {
		labelFondo.setLocation(labelFondo.getLocation().x - 8,
				labelFondo.getLocation().y);
		panelComponentes.setLocation(panelComponentes.getLocation().x - 8,
				panelComponentes.getLocation().y);
		panelPowerUps.setLocation(panelPowerUps.getLocation().x - 8,
				panelPowerUps.getLocation().y);

	}

	/**
	 * Mueve la grafica hacia la derecha. Mario avanza.
	 */
	public void moverIzquierda() {
		labelFondo.setLocation(labelFondo.getLocation().x + 8,
				labelFondo.getLocation().y);
		panelComponentes.setLocation(panelComponentes.getLocation().x + 8,
				panelComponentes.getLocation().y);
		panelPowerUps.setLocation(panelPowerUps.getLocation().x + 8,
				panelPowerUps.getLocation().y);
	}

	/**
	 * Mueve la grafica hacia arriba. Mario salta.
	 */
	public void moverArriba() {
		labelFondo.setLocation(labelFondo.getLocation().x,
				labelFondo.getLocation().y + 16);
		panelComponentes.setLocation(panelComponentes.getLocation().x,
				panelComponentes.getLocation().y + 16);
		panelPowerUps.setLocation(panelPowerUps.getLocation().x,
				panelPowerUps.getLocation().y + 16);

	}

	/**
	 * Mueve la grafica hacia abajo. Mario cae.
	 */
	public void moverAbajo() {
		labelFondo.setLocation(labelFondo.getLocation().x,
				labelFondo.getLocation().y - 16);
		panelComponentes.setLocation(panelComponentes.getLocation().x,
				panelComponentes.getLocation().y - 16);
		panelPowerUps.setLocation(panelPowerUps.getLocation().x,
				panelPowerUps.getLocation().y - 16);

	}

}
